package com.hyt.it.ogt.kq.service.gov.feign.ua;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hyt.common.apiInfor.ApiResponse;
import com.hyt.it.ogt.kq.service.gov.feign.ua.model.UserInfoDTO;
import com.hyt.it.ogt.kq.service.gov.feign.ua.model.UserParamDTO;
import com.hyt.loginfo.config.OAuth2FeignRequestConfig;
import com.hyt.loginfo.model.OfficeUserVO;
import com.hyt.loginfo.model.Tree;
import com.hyt.loginfo.model.UserVO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

/**
 * 权限平台客户端熔断器
 *
 * @author wangg
 * @since 2021-11-26
 */
@FeignClient(name="it-ogt-webcommon",contextId = "gov-it-ogt-webcommon-3",fallback = GovUaClientHystrix.class, configuration = OAuth2FeignRequestConfig.class)
public interface GovUaClient {

    /**
     * 获取部门树
     * 120000：成功
     * @param
     * @return
     */
    @GetMapping("/ogt/kw/dept/get/tree")
    public  ApiResponse<List<Tree>> uaDeptTree();

    /**
     * 获取机构用户分页数据
     * 120000：成功；1228111：查询机构用户分页异常; 1228112：获取不到当前登录人信息;1228113：当前查询的部门没有权限
     * @param
     * @return
     */
    @GetMapping("/kw/office/user/get/page")
    public ApiResponse<Page<OfficeUserVO>> uaGetOfficeUserPage();

    /**
     * 批量获取用户信息
     * 120000：成功；1228121：查询用户列表异常；1228122：获取登录人的部门信息失败
     * @param
     * @return
     */
    @GetMapping("/kw/office/user/getbyids")
    public ApiResponse<List<UserVO>> batchGetKwExaminerInfo(@RequestParam UserParamDTO userParamDTO);

    /**
     * 修改机构用户角色
     * 120000:成功；1228131： 用户id不能为空;1228132： 用户角色操作类型为空;1228133： 用户角色为空; 1228132： 设置机构用户角色失败
     * @param
     * @return
     */
    @PostMapping("/kw/office/user/edit/roleids")
    public ApiResponse<Object> modifyKwExaminerRole(@RequestBody UserParamDTO userParamDTO);

    /**
     * 重置用户密码
     * @param
     * @return
     */
    @PostMapping("/ogt/gl/office/user/edit")
    public ApiResponse<Object> resetKwExarminerPwd(@RequestBody UserInfoDTO userDTO);

}
